Numerous token or tag identification systems or schemes are widely used to represent different types of objects, events and locations. Examples of identification schemes commonly used today are license plate identifiers for cars, social security numbers for people, and Library of Congress identifiers for books. Computer systems use tokens or tags to identify everything from system messages to system user input. Computer networking systems use tokens to identify system users and error messages on a network. Computerized database systems use tokens for identifying and retrieving data items stored on computer storage areas.
Token identifiers are particularly useful for classifying objects stored in computerized database systems. Unique token identifiers are used as candidate keys for retrieving from a computerized database, information relating to items or instances identified by the tokens.
There is a particular need for a token identification scheme that can be used with computer databases that are interconnected worldwide and require unique identifiers across a large name space supporting parallel independent assignment without conflicts which require the introduction of conflict resolution schemes.
Computer network systems have grown to be larger and more interconnected. When network interconnections were limited, objects, such as resources, applications, or devices, in the networks were named according to different proprietary schemes. Now, the existing naming spaces which are limited to specific sizes and scopes, are unable to cope with growth and increasing user needs. Furthermore, cooperative efforts rather than proprietary efforts are needed in order to provide compatibility.
When the network systems use the same format for token identifiers there can be problems with systems generating the same tokens which eliminates the token uniqueness. When the systems use a different format for the token identifiers, one system may not be able identify or make use of the other systems' tokens.
An example of a proposed identification scheme is described in Zatti, S, Ashfield, J, Baker, J, and Miller, E., Naming and Registration for IBM Distributed Systems, IBM Systems Journal, vol 31, no. 2, 1992, pp 353-380. The proposed scheme conforms to standards criteria. The international standards organizations (ISO) reference model introduces the concept of Application Entity Title (AET). The AET is a high-level identifier that allows applications and users to denote a component of an application that performs communication functions. An AET is mapped by an application layer directory to low level addressing information used by the Association Control Service Element to establish associations. The International Organization for Standardization-Consultative Committee on International Telegraph and Telephone defined "Distinguished Names" which provides a syntax for the identifier. The Zatti scheme provides an extensible, global naming scheme. However, the approach is complicated and allows for conflicts which must be resolved using a conflict resolution scheme. Also, the Zatti approach does not provide an algorithm for the automated generation of unique tokens.
In general, the token identification schemes currently used are inadequate due to limitations on the use of the tokens and other problems inherent within the schemes.
Predominantly, the token identification schemes currently being used are directed towards providing tokens for a particular group objects for a single purpose. The telephone numbering scheme is only used for identifying telephones and the Library of Congress numbering scheme is only used for identifying documents. These schemes are not designed to be used for more than one type of object. The Universal Product Codes (UPC) provide an attempt at universality. However the codes are limited to use on products and have the problem of not being extensible.
A number of identification schemes currently being used rely on time or location to provide a mechanism for uniquely representing different items. However these schemes have consistency problems that hinder their use. Schemes that use tokens based on time have problems with consistency due to clocks not always being synchronized, granularity, and time zone differences. Schemes that use nodes at a location for uniquely identifying objects have consistency problems since the nodes can be moved and multiple servers can exist at one location.
Current schemes also have problems with extensibility when the token has a fixed length. A token identification scheme can become obsolete when a maximum token size is required since the pool of items being represented by the tokens can grow beyond expectations. For example, in a network system where network users are identified by fixed length tokens, if more users join the network system than originally anticipated, there can be a problem with providing enough unique tokens to distinguish and identify each user.
There are problems associated with identification schemes that are tied to a specific code set. There are many variations for code sets which limits a code set from being compatible on all systems. For example, there can be differences for the length of bytes. There are also differences from one country to the next. There are also some applications which require identifiers consisting of only printable characters that can be used by people and other applications where it is more efficient to use non-printable characters.
Current identification schemes also have migration problems. The token architecture may have to be expanded or altered due to unforeseen requirements. There is a need to allow for multiple versions of token identifiers that are orthogonal and can coexist well. Otherwise there is the problem of having to perform conversions or migrations and fallbacks, which can be difficult.
There is a need for unique standardized identifiers to tie computer database references to real world objects and events using a simple symbolic representation allowing easy identification management and association. In particular, there is a need for a token identification system to supply universally unique identifiers that are extensible, object independent and support parallel assignment from an arbitrarily large number of servers with uniqueness maintained.